FINAL SOLUTION: No Artifacts Approach

🔴 The Real Problem

You’re absolutely right! The split-job approach I initially suggested still uses artifacts, which means:

  • ❌ Still counts against your storage quota
  • ❌ Can still hit quota limits if workflow runs frequently
  • ❌ Only reduces the problem, doesn’t solve it

✅ The Real Solution: ZERO Artifacts

You need a workflow that doesn’t use artifacts at all. Here are your options:


📊 Comparison Table

Approach Artifacts Used? Quota Impact Works on Windows? Complexity
Quarto built-in ❌ None ✅ Zero ✅ Yes ⭐ Simple
Manual gh-pages push ❌ None ✅ Zero ✅ Yes ⭐⭐ Medium
Split job (current) ✅ Yes (1 day) ⚠️ Low but not zero ✅ Yes ⭐⭐⭐ Complex
Single job with Pages API ✅ Yes ❌ High ❌ Needs WSL ⭐⭐⭐ Complex

🚀 Implementation Steps

🎯 Why Quarto Built-in is Best

The quarto publish gh-pages command is specifically designed for this use case:

# This ONE command does everything:
quarto publish gh-pages --no-prompt --no-browser

What it does internally:

  1. Renders your Quarto project
  2. Creates/updates the gh-pages branch
  3. Pushes the rendered content
  4. All without using any GitHub Actions artifacts!

It’s literally the official way to publish Quarto to GitHub Pages.


🧹 Cleaning Up After Switch

After switching to the no-artifact approach:

  1. Run the cleanup script to remove existing artifacts:

    cd "E:\dev.darioa.live\darioairoldi\Learn\20251018 ISSUE Github action fails with Artifact storage quota has been hit"
    .\cleanup-artifacts.ps1
  2. Monitor that no new artifacts are created:

    • Go to: https://github.com/darioairoldi/Learn/actions/artifacts
    • Should remain empty after workflows run

📝 Quick Decision Guide

Use Quarto Built-in (quarto-publish.simple.yml) if:

  • ✅ You want the simplest solution
  • ✅ You’re okay with quarto publish handling everything
  • ✅ You want the official Quarto method
  • ✅ You want ZERO artifacts

Use Manual Push (quarto-publish.direct.yml) if:

  • ✅ You need custom deployment logic
  • ✅ You want more control over the git operations
  • ✅ You want ZERO artifacts

Don’t use the split-job approach if:

  • ❌ You’re hitting artifact storage quota limits
  • ❌ You run workflows frequently
  • ❌ You want to avoid artifacts completely

✅ Summary

The issue with the current approach:

  • Still uses artifacts (even with 1-day retention)
  • Can accumulate if workflow runs frequently
  • Not a true solution to the quota problem

The real solution:

  • Use quarto publish gh-pages command
  • No artifacts at all
  • Simple, official, and works perfectly on Windows

Next step:

  • Replace quarto-publish.win64.yml with quarto-publish.simple.yml
  • Configure GitHub Pages to use gh-pages branch
  • Done! No more quota issues, ever.

Ready to implement? I recommend Option 1 (Quarto built-in). 🎉